Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
For in loop on object, y .find, devolviendo "indefinido"

Estoy tratando de recorrer un objeto ( objectToLoop ) y verificar si contiene la clave comments_text . Si es así, quiero verificar comments_text , y si la key dentro de comments_text coincide con commentId , quiero configurar let item para todo el objeto dentro de coments_text .

Estoy tratando de configurar let item en lo siguiente, pero me sale "indefinido":

 { commenter_comment: "reedwe", commenter_handle: "FALCON1", commenter_uid: "ZALb0B3wZEWjfdFIUOxteJRl9Xu1", key: "-MlaKXBMXzXIBJMsZQNX" }

Consejos y comentarios apreciados.

 const commentId = "-MlaKXBMXzXIBJMsZQNX" const objectToLoop = { comment: false, comments_text: { commenter_comment: "reedwe", commenter_handle: "FALCON1", commenter_uid: "ZALb0B3wZEWjfdFIUOxteJRl9Xu1", key: "-MlaKXBMXzXIBJMsZQNX" }, handle: "TURTLE1", key: "-MkeOOUboKdOcC3Sannl", title: "hello2" } function returnMatchingComment(commentIdKey) { let item; for (const post in objectToLoop) { if (post.comments_text) { item = Object.values(post.comments_text).find( (comment) => comment.key === commentIdKey ) }; if (item) { break; } } return item } console.log( returnMatchingComment(commentId) )

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

No necesita usar el bucle for...in . Primero puede verificar si objectToLoop tiene la propiedad comments_text usando Object.prototype.hasOwnProperty() y verificar si objectToLoop?.comments_text?.key == commentId . usé ?. (encadenamiento opcional) de modo que si objectToLoop.comments_text no existiera, simplemente devolvería undefined y no arrojaría un error feo.
Ejemplo:

 const commentId = "-MlaKXBMXzXIBJMsZQNX" const objectToLoop = { comment: false, comments_text: { commenter_comment: "reedwe", commenter_handle: "FALCON1", commenter_uid: "ZALb0B3wZEWjfdFIUOxteJRl9Xu1", key: "-MlaKXBMXzXIBJMsZQNX" }, handle: "TURTLE1", key: "-MkeOOUboKdOcC3Sannl", title: "hello2" } if(objectToLoop.hasOwnProperty('comments_text') && objectToLoop?.comments_text?.key == commentId) { let item = objectToLoop.comments_text; console.log(item) }
Para ser honesto, ni siquiera necesitamos objectToLoop.hasOwnProperty('comments_text') como con el encadenamiento opcional (como se mencionó anteriormente), objectToLoop?.comments_text?.key == commentId simplemente devolvería undefined si objectToLoop.comments_text no existiera o false si objectToLoop.comments_text.key no era igual a commentId .
Ejemplo 2:

 const commentId = "-MlaKXBMXzXIBJMsZQNX" const objectToLoop = { comment: false, comments_text: { commenter_comment: "reedwe", commenter_handle: "FALCON1", commenter_uid: "ZALb0B3wZEWjfdFIUOxteJRl9Xu1", key: "-MlaKXBMXzXIBJMsZQNX" }, handle: "TURTLE1", key: "-MkeOOUboKdOcC3Sannl", title: "hello2" } if(objectToLoop?.comments_text?.key == commentId) { let item = objectToLoop.comments_text; console.log(item) }

about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes poner algo de depuración. Tu si nunca disparas. El registro 'i' te da una gran información =)

 const commentId = "-MlaKXBMXzXIBJMsZQNX" const objectToLoop = { comment: false, comments_text: { commenter_comment: "reedwe", commenter_handle: "FALCON1", commenter_uid: "ZALb0B3wZEWjfdFIUOxteJRl9Xu1", key: "-MlaKXBMXzXIBJMsZQNX" }, handle: "TURTLE1", key: "-MkeOOUboKdOcC3Sannl", title: "hello2" } function returnMatchingComment(commentIdKey) { let item; var i =0; for (const post in objectToLoop) { console.log(post,i++); if (post.comments_text) { console.log("APPEND"); item = Object.values(post.comments_text).find( (comment) => comment.key === commentIdKey ) }; if (item) { break; } } return item } console.log( returnMatchingComment(commentId) )

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda